package org.dromara.hm.domain.vo.saleOrder;

import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 订单产品数量计算结果视图对象
 * 封装了某个订单中某个产品的已提货、剩余提货、已回款、剩余回款等数量
 *
 * @author Hzy
 * @date 2025-07-24
 */
@Data
public class OrderProductQuantities implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 实际已提货总量 (包含正常提货和补充提货，减去退货)
     */
    private BigDecimal totalPickedUpQuantity;

    /**
     * 剩余提货数量 (销售数量 - 已退货数量 - 实际已提货总量)
     */
    private BigDecimal surplusQuantity;

    /**
     * 实际已回款金额 (减去退款)
     */
    private BigDecimal actualReceivedAmount;

    /**
     * 剩余未回款金额 (销售金额 - 已退款金额 - 实际已回款金额)
     */
    private BigDecimal refundSurplusAmount;

    /**
     * 总退货数量 (已提+未提)
     */
    private BigDecimal totalRefundedQuantity;

    /**
     * 总退款金额
     */
    private BigDecimal totalRefundedAmount;
}
